package com.lj.back.manage.scaffold.module.sys.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lj.back.manage.scaffold.module.sys.DO.SysRoleDO;
import com.lj.back.manage.scaffold.module.sys.DTO.SysRoleDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;

/**
 * @author lv
 * @version 1.0.0
 */
@Mapper
@Repository
public interface SysRoleDao extends BaseMapper<SysRoleDO> {

    /**
     * 根据用户查询角色列表
     * @param userId 用户ID
     * @return 角色列表
     */
    Set<SysRoleDTO> selectRoleByUser(@NotNull(message = "{user.id.notnull}") Long userId);

    /**
     * 新增或者更新角色菜单信息
     * @param id
     * @param menuIds
     * @return
     */
    int insertRoleMenu(@NotNull(message = "{role.id.notnull}") @Param("roleId") Long id,
                    @NotEmpty(message = "{role.menuIds.notnull}") @Param("menuIds") Set<Long> menuIds);

    /**
     * 根据角色ID删除关联菜单
     * @param id
     * @return
     */
    int deleteRoleMenuByRoleId(@NotNull(message = "{role.id.notnull}") @Param("roleId") Long id);
}
